DRAFT OF PROPOSED REVISION 
OF THE SECURECD SPECIFICATION

Prepared by:  Andrew Young, President, Young Minds, Inc.
Last Modified:  April 11, 1994

Note 1:  This document is based on the SIGCLASS/93-05/03 version of the specification.
Note 2:  Text which has been added or modified is shown in bold print.

SPECIFICATION FOR ENCRYPTED CD-ROM

1.0	Scope of Specification

	The purpose of this specification is to define file system extensions which can support an automated process which can identify an encrypted ISO 9660 CD-ROM and its associated cryptography.  The goal is to support the application of cryptography for classified, unclassified but sensitive, commercial, and exportable CD-ROM media within the ISO 9660 conformant disc.  This specification applies to all CD-ROMs that have been fully encrypted under a single cryptographic key and CD-ROMs that have individually encrypted files and/or partitions using separate keys.
	
	The objective of this specification is NOT to identify a specific encryption algorithm or its implementation.  Additionally, this specification does not address key management as associated with the cryptographic implementation.

2.0	References

	ISO 9660, Information Processing - Volume and File Structure of CD-ROM for Information Interchange
	
	ISO 10149, Data Interchange on Read-Only 120 mm Optical Data Disks (CD-ROM) and "The Yellow Book"
	
	FIPS PUB XX, Digital Signature Standard (DSS), DRAFT 1991 August 19
	
	ANSI Standard X.509
	
	1988 CCITT recommendation X.411
	
	IEEE P1281, System Use Sharing Protocol, DRAFT Version 1.11

3.0	Definitions

3.1	Cryptographic Algorithm:  The predefined process used to effect encryption and decryption.  The algorithm may be implemented in hardware and/or software.

3.2	Cryptographic Key:  The information used by the cryptographic algorithm to control the encryption and/or decryption process.  The cryptographic key provides unique instances of a specific cryptographic algorithm.

3.3	Decryption:  The process of producing plain text from encrypted (or cipher text) information.

3.4	Encryption:  The application of the cryptographic algorithm to plain text data to produce cipher text.

3.5	Encrypted CD-ROM:  A CD-ROM that has had its data elements encrypted by the application of a cryptographic algorithm and its associated key(s).

3.6	Device Driver:  Software that is used to access peripheral devices.  In this case, a CD-ROM drive containing an encrypted CD-ROM.

3.7	Digital Signature:  The application of cryptography which provides a method to verify the source of the information through electronic means only.

3.8	Key Management:  The administrative process of controlling the production, distribution, and application of cryptographic keys.

3.9	Single Volume:  The recording of all data on a CD-ROM within a single ISO 9660 partition.

3.10	Multi-Volume:  The recording of data on CD-ROM where separate data sets are recorded on separate ISO 9660 partitions in accordance with ISO 10149 and "The Yellow Book".

4.0	Volume Structure

4.1	The Volume Space of a CD-ROM is divided into a System Area, occupying Logical Sector number 0 to 15, and a Data Area which contains all remaining sectors starting at Logical Sector 16.

	The System Area has been reserved under ISO 9660 for system use.  The content of the System Area is not defined under ISO 9660.
	
4.2	One or more of the Logical Sectors 0-15 in the System Area (Logical Sector 15 is suggested) will be an "Encrypted CD-ROM Notification Sector".  If more than one "Encrypted CD-ROM Notification Sector" is recorded, the one recorded in the sector with the highest Logical Sector Number shall be used as the default and shall be referred to as the "Primary Encrypted CD-ROM Notification Sector".

4.3	All data contained in an Encrypted CD-ROM Notification Sector is capable of being accessed by the user equipped with device driver software which has been created to read the systems area.

4.4	The Encrypted CD-ROM Notification Sector contains thirteen blocks of data.

	4.4.1	The first block of data will be 8 bytes in length, occupying BP 1 to 8.  This block is the "Encrypted CD-ROM Verification Field".
	
	4.4.2	The second block of data will be 2 bytes in length, occupying BP 9 to 10.  This block is the "Specification Revision Number Field".
	
	4.4.3	The third block of data will be 12 bytes in length, occupying BP 11 to 22.  This block is the "Algorithm Identifier Field".
	
	4.4.4	The fourth block of data will be 9 bytes in length, occupying BP 23 to 31.  This block is the "Security Label Field".
	
	4.4.5	The fifth block of data will be 80 bytes in length, occupying BP 32 to 111.  This block is the "Key Material Identification Data Field".
	
	4.4.6	The sixth block of data will be 2 bytes in length, occupying BP 112 to 113.  This block is the "Encryption Level Field".
	
	4.4.7	The seventh block of data will be 40 bytes in length, occupying BP 114 to 153.  This block is the "Publishers Digital Signature Field".
	
	4.4.8	The eighth block of data will be 32 bytes in length, occupying BP 154 to 185.  This block is the "Escape Sequences Field".
	
	4.4.9	The ninth block of data will be 72 bytes in length, occupying BP 186 to 257.  This block is the "Short Notification Message Field".
	
	4.4.10	The tenth block of data will be 1519 bytes in length, occupying BP 258 to 1776.  This block is the "Long Notification Message Field".
	
	4.4.11	The eleventh block of data will be 8 bytes in length, occupying BP 1777 to 1784.  This block is the "Block Table Location Field".
	
	4.4.12	The twelfth block of data will be 8 bytes in length, occupying BP 1785 to 1792.  This block is the "Parameter Table Location Field".
	
	4.4.13	The thirteenth block of data will be 256 bytes in length, occupying BP 1793 to 2048.  This block is the "Extended Use Field".

5.0	Encrypted CD-ROM Notification Sector Content and Intended Use

5.1	Encrypted CD-ROM Verification Field  (BP 1 to 8)

	This field identifies to the system that this CD-ROM is recorded in a manner conforming with this specification.  The characters in this field shall be the ISO 646 character string "SECURECD".  This is a required field.
	
5.2	Specification Revision Number Field  (BP 9 to 10)

	This field identifies to the system the revision number of the specification. The characters in this field shall be the ISO 646 character string "01".  This is a required field.
	
5.3	Algorithm Identifier Field  (BP 11 to 22)

	This field enables the device driver to load or request the proper algorithm or driver for operation with this encrypted CD-ROM.  Algorithm Identifiers shall be consistent with the ANSI X.509 certificate algorithm identifier field.  There will be a set of Algorithm Identifier values defined for vendor specific drivers and/or unique implementations.
	
5.4	Security Label Field  (BP 23 to 31)

	This allows the publisher to identify a security label for the data.  This label can be used by software to provide the output labeling on the screen to users reviewing the plain text information.  This field shall be consistent with definition provided by 1988 CCITT recommendation X.411.
	
5.5	Key Material Identification Data Field  (BP 32 to 111)

	This is a unique identifier used with the publisher's key management information.  This allows the device driver to load the proper keying material for decryption.
	
5.6	Encryption Level Field  (BP 112 to 113)

	This field is used to define, within the data area of the CD-ROM, the location and scope of the encryption.  This is a required field.
	
	5.6.1	Level 1 - Identified by the ISO 646 Characters "01"
	
		This level is used to define the encryption of the entire DATA AREA as defined in the ISO 9660 specification.  All data recorded after the SYSTEMS AREA starting at and including Logical Sector number 16 will be encrypted using the encryption parameters recorded in the appropriate fields of an Encrypted CD-ROM Notification Sector.
		
	5.6.2	Level 2 - Identified by the ISO 646 Characters "02"
	
		This level defines the encryption of data recorded after the VOLUME DESCRIPTOR(S) defined in the ISO 9660 specification.  Logical Sector number 16 contains the first VOLUME DESCRIPTOR of the set of the VOLUME DESCRIPTORS, all of which shall be recorded in plaintext, non-encrypted form.  All data recorded after the VOLUME DESCRIPTOR(S) shall be encrypted using the encryption parameters recorded in the appropriate fields of an Encrypted CD-ROM Notification Sector.
		
	5.6.3	Level 3 - Identified by the ISO 646 Characters "03"
	
		This level defines the encryption of all of the user data files (and only the user data files) on the entire CD-ROM.  All files shall be encrypted using the encryption parameters recorded in the appropriate fields of this sector.
		
		Note:  For the purposes of this specification, the ISO 9660 EXTENDED ATTRIBUTE RECORD (XAR), if any such is recorded, associated with a file or directory shall be considered part of that file or directory (i.e. if a file is encrypted, its XAR is also, using the same encryption parameters).  Similarly, if a directory is encrypted, all SUSP Continuation Areas, if any, associated with any of the DIRECTORY RECORDS in that directory shall also be encrypted using the same encryption parameters.
		
	5.6.4	Level 4 - Identified by the ISO 646 Characters "04"
	
		This level specifies that the encryption will apply to all or none of the user data files and directories, optionally excluding the ROOT DIRECTORY and PATH TABLES, within the directory structure associated with each VOLUME DESCRIPTOR.  The encryption shall use the encryption parameters stored in Extended Use Entries recorded in each VOLUME DESCRIPTOR.  
		
		For Encryption Level 4 and higher, recording of an Encrypted CD-ROM Notification Sector is optional, though recommended.  If an Encrypted CD-ROM Notification Sector is recorded, the VOLUME DESCRIPTOR-specified encryption parameters override those specified by the Encrypted CD-ROM Notification Sector.  
		
		If no Encrypted CD-ROM Notification Sector is recorded, general encryption information provided by this sector may be specified in Extended Use Entries recorded in each VOLUME DESCRIPTOR
	
	5.6.5	Level 5 - Identified by the ISO 646 Characters "05"
	
		This level specifies that the encryption will apply either to all or none of the user data files within the directory structure associated with each individual VOLUME DESCRIPTOR.  The encryption shall use the encryption parameters specified in Extended Use Entries recorded in each VOLUME DESCRIPTOR.
		
	5.6.6	Level 6 - Identified by the ISO 646 Characters "06"
	
		This level defines the encryption of any or all of the user data files within the directory structure associated with each individual VOLUME DESCRIPTOR.  Each individual file may be encrypted using encryption parameters specified in Extended Use Entries recorded in the corresponding ISO 9660 DIRECTORY RECORD.
		
		For Encryption Level 6 and higher, recording of default encryption parameters for each VOLUME DESCRIPTOR is optional, though recommended.  If default encryption parameters are recorded within a VOLUME DESCRIPTOR, the DIRECTORY RECORD-specified encryption parameters override those specified by the VOLUME DESCRIPTOR.  Further, if no default encryption parameters are recorded within a VOLUME DESCRIPTOR, the DIRECTORY RECORD-specified parameters also override those specified by the Encrypted CD-ROM Notification Sector, if any such sector is recorded.  
		
	5.6.7	Level 7 - Identified by the ISO 646 Characters "07"
	
		This level defines the encryption of any or all of the user data files and/or directories, excluding the ROOT DIRECTORY, within the directory structure associated with each individual VOLUME DESCRIPTOR.  VOLUME DESCRIPTOR(S) and PATH TABLES shall be left unencrypted.  Each individual file or directory may be encrypted using encryption parameters specified in Extended Use Entries recorded in the corresponding DIRECTORY RECORD
		
5.7	Publisher Signature Field  (BP 114 to 153)

	This allows the device driver to authenticate the publisher of the encrypted CD-ROM.  This field will authenticate the contents of the "Encrypted CD-ROM Notification Sector".  Before generating a Publisher Signature, all bytes in this field shall be set to ISO 646 NUL (DEC 00).  After the signature has been generated, the resulting value shall be recorded in this field. Receiving systems shall extract the value of the Publisher Signature from this field and set all bytes in this field to ISO 646 NUL (DEC 00) before attempting to verify the signature.  The use of this field by the publisher is at their option. Recording of this field shall be consistent with FIPS PUB XX, DRAFT for Digital Signature Standard (DSS).
	
5.8	Escape Sequences Field  (BP 154 to 185)

	This field shall specify one or more escape sequences according to ISO 2022 that designate the graphic character set(s), in a manner consistent with that specified by ISO 9660 Section 8.5.6, to be used to interpret the Short and Long Notification Message Fields.  All bytes in this field shall be set to ISO 646 NUL (DEC 00) in the "Primary Encrypted CD-ROM Notification Sector".  

	The character set to be used in the Short and Long Notification Message Fields of the "Primary Encrypted CD-ROM Notification Sector" shall be ISO 646 (ASCII).  The character set to be used in the Short and Long Notification Message Fields of any other "Encrypted CD-ROM Notification Sector" shall be the c-characters (see ISO 9660 Section 7.4.2) of the coded graphic character set identified by the escape sequences recorded in this field.

5.9	Short Notification Message Field  (BP 186 to 257)

	This producer defined text may be displayed to the user during the "SECURECD" initialization process.   This is a required field.
	
5.10	Long Notification Message Field  (BP 258 to 1776)

	This field may be used by the publisher to provide information to the user concerning CD-ROM content and access instructions.  This field may contain the key identification and access warning information.  An ISO 646 NUL (DEC 00) and an ISO 646 EOT (End-of-Text) (DEC 00) will terminate the displayable user information recorded in this field.  The remainder of this field is available for alternative uses at the discretion of the publisher.  
	
5.11	Block Table Location Field (BP 1777 to 1784)

	This field may be used to record the logical block address of the Block Table.  Recording of a Block Table is required for discs utilizing Encryption Levels 3 through 7.

5.12	Parameter Table Location Field (BP 1785 to 1792)

	This field may be used to record the logical block address of an optional Parameter Table.  

5.13	Extended Use Field (BP 1793 to 2048)

	This field may be used to record additional information using Extended Use Entries as specified below.  

6.0	Extended Use Entries

	The ISO 9660 provides a variety of Application Use or System Use fields for recording extended information for specific purposes.  Since different applications may make simultaneous use of these fields desirable, the use of an extensible, sharable mechanism, such as the Extended Use Entries defined and used herein, is preferable.  This mechanism is essentially the same as the System Use Sharing Protocol (IEEE P1281, a.k.a. SUSP).   As appropriate, any entries defined in the SUSP specification may also be recorded.

	The entries defined herein are being referred to as Extended Use Entries because the information recorded is in the gray area between system- and application-use, and is recorded in both System Use and Application Use fields provided by the ISO 9660.  In particular, Extended Use Entries defined by this specification may be recorded in either an ISO 9660 Primary or Supplementary VOLUME DESCRIPTOR Application Use field or an ISO 9660 DIRECTORY RECORD System Use field.  These fields shall be referred to as Extended Use Areas in this specification.

	The main entry supports recording of a key material identifier and an algorithm identifier for each encrypted file or directory.  Optional recording of disc-wide or directory-structure-wide default values for the identifiers is provided.  Also, entries to allow recording of all the SECURECD header information are defined.

6.1	Extended Use Entry Format

	The Extended Use Entry format is as follows:

[1]	"BP 1 to BP 2 - Signature Word" shall specify an identification of a Extended Use Entry.  This field shall contain two bytes.  Each byte is recorded according to ISO 9660 Format Section 7.1.1.

[2]	"BP 3 - Length (LEN_EUE)" shall specify as an 8-bit number the length in bytes of the Extended Use Entry, including the Signature Word, Length, Version and Extended Use content.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3] 	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the Extended Use Entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4] 	"BP 5 to LEN_EUE - Data" shall contain the content of the Extended Use Entry.  The format of this field depends on the Signature Word and Version of the Extended Use Entry.  The Data field is optional.
6.1.1	Extended Use Entry Structure
	_____________________________________________________
	SIG1	SIG2	LENGTH	VERSION	         DATA
	(BP1)	(BP2)	  (BP3)		    (BP4)	(BP5 to LEN_EUE)
	_____________________________________________________

6.2	Extended Use Entries Provided by this Specification

	The  SECURECD Protocol defines the following Extended Use Entries:
	"SH"	SECURECD Header Information
	"EP"	Encryption Parameters (Key Material and Algorithm Identifiers)
	"SM"	Short Notification Message
	"LM"	Long Notification Message
	"IV"	Initialization Vector
	"PS"	Publisher Signature
	"RP"	Root Directory and Path Table Encryption Flag

6.3	Description of "SH" Extended Use Entry

	The "SH" Extended Use Entry allows for recording much of the information provided by an Encrypted CD-ROM Notification Sector.  The existence of this entry serves the purpose of the Encrypted CD-ROM Verification Field.  The Extended Use Entry Version of this entry shall be the same as the Specification Revision Number of this specification.  In addition, this entry records a Security Label and the Encryption Level.  

	This entry is mandatory if no Encrypted CD-ROM Notification Sector is recorded.  If an "SH" Extended Use Entry is recorded, it shall be recorded in an ISO 9660 Primary or Supplementary Volume Descriptor Application Use field.  If both an "SH" Extended Use Entry and an Encrypted CD-ROM Notification Sector are recorded, the contents of their corresponding fields shall be consistent.

	The format of the "SH" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "SH" type Extended Use Entry.  The bytes in this field shall be (53)(48) ("SH").

[2]  	"BP 3 - Length (LEN_SH)" shall specify as an 8-bit number the length in bytes of the "SH" Extended Use Entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "SH" Extended Use Entry.  The number in this field shall be the same as the value as the Specification Revision Number of this specification (i.e. 1 for this version).  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 5  - Encryption Level" shall specify as an 8-bit number the level of encryption as defined for the Encryption Level Field of the Encrypted CD-ROM Notification Sector of this specification.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[5]  	"BP 6 to 14 - Security Label" shall contain the Security Label as defined for the Security Label Field of the Encrypted CD-ROM Notification Sector of this specification.

[6]  	"BP 15 to 22 - Block Table Location " shall contain the logical block address of the Block Table, if such a table is recorded.  If no such table is recorded, the value of this field shall be 0.  This field shall be recorded according to ISO 9660 Section 7.3.3.
[7]  	"BP 23 to 30 - Parameter Table Location " shall contain the logical block address of the optional Parameter Table, if such a table is recorded.  If no such table is recorded, the value of this field shall be 0.  This field shall be recorded according to ISO 9660 Section 7.3.3.
6.4	Description of "EP" Extended Use Entry

	The "EP" Extended Use Entry is intended to record Encryption Parameters, i.e. information required identify how a set of data was encrypted, specifically the Key Material Identifier and Algorithm Identifier, for use in the process of decrypting the data associated with the recorded entry.  

	This field shall only be recorded when utilizing Levels 4 through 7 of this specification.  For Level 4 or 5, recording of this entry is mandatory in, and restricted to, the Primary or Supplementary Volume Descriptor Application Use field associated with a directory hierarchy containing encrypted files or directories.  For Level 6 or 7, recording of this entry is mandatory in the directory record identifying each encrypted file or directory in its parent directory, and may also be recorded in the Application Use field of the Primary or Supplementary Volume Descriptor associated with this directory hierarchy .  No "EP" entry shall be recorded in any other directory record.  Only one "EP" entry may be recorded for a single directory record.

	If no value for the Key Material Identifier and/or Algorithm Identifier is recorded in a "EP" entry associated with an encrypted file, the corresponding value recorded in a "EP" entry in the first directory record of the root directory for the directory structure, if such exists, shall be used as the default value.  If no corresponding value, or no "EP" entry, is recorded in the first directory record of the root directory for the directory structure, the corresponding value recorded in the SECURECD header, if such is recorded, shall be used as the default value.

	The format of the "EP" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "EP" type Extended Use Entry.  The bytes in this field shall be (45)(50) ("EP").

[2]  	"BP 3 - Length (LEN_EP)" shall specify as an 8-bit number the length in bytes of the "EP" Extended Use Entry.  The number in this field shall be 6 + LEN_KI + LEN_AI for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "EP" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 5 - Key Material Identifier Length (LEN_KI)" shall specify as an 8-bit number the length in bytes of the Key Material Identifier recorded in this "EP" Extended Use Entry.  If this value of LEN_KI is zero, the default Key Material Identifier value, if any is defined, shall be used and no Key Material Identifier shall be recorded in this "EP" entry.  If the value of LEN_KI is 8, the Key Material Content shall contain a numerical value specifying the position in a Parameter Table which records the appropriate Key Material Identifier.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[5]  	"BP 6 - Algorithm Identifier Length (LEN_AI)" shall specify as an 8-bit number the length in bytes of the Algorithm Identifier recorded in this "EP" Extended Use Entry.  If this value is zero, the default Algorithm Identifier value, if any is defined, shall be used and no Algorithm Identifier shall be recorded in this "EP" entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[6]  	"BP 7 to 6 + LEN_KI - Key Material Content (KEY_ID)" shall contain the content of the Key Material Identifier or a numerical value specifying the position in a Parameter Table which records the appropriate Key Material Identifier.  If the value of LEN_KI is 8, then a numerical value is recorded.  This numerical value shall be recorded according to ISO 9660 Section 7.3.3.

	If this "EP" entry is associated with an individual encrypted file or directory and there is no default Key Material Identifier value, this field shall record a non-trivial Key Material Identifier or valid Parameter Table reference.

[7] 	"BP 7 + LEN_KI to 6 + LEN_KI + LEN_AI - Algorithm Content (ALG_ID)" shall contain the content of the Algorithm Identifier.  If this "EP" entry is associated with an encrypted file and there is no default Algorithm Identifier value, this field shall record a non-trivial Algorithm Identifier.  The recording of this descriptor shall conform to ANSI X.509.  

6.5	The Parameter Table 

	On some encrypted discs, many individual files may be encrypted, each requiring the recording of an individual "EP" entry, but using a relatively few different values for the Key Material Identifier (as well as potentially other required information).  Instead of forcing the consumption of many bytes of relatively scarce space in the DIRECTORY RECORD, it may be desirable to use a lookup table for highly repetitive information.

	The logical block address of the Parameter Table defined here, if recorded, shall be specified in the Parameter Table Location field of each recorded Encrypted CD-ROM Notification Sector and "SH" entry.  Additionally, the table may be recorded in the ROOT DIRECTORY using the reserved filename "PARAM.TBL". 

6.5.1	Format of the Parameter Table 

	The Parameter Table is a list of variable length records preceded by a header record.  The header record consists of the ISO 646 character string:

	"SECURECD PARAM TABLE V01".  

	Each Parameter Table record is of the following form:

[1]  	"BP 1 - Length (LEN_REC)" shall specify as an 8-bit number the length in bytes of the Block Table record.  The number in this field shall be 3 + LEN_KI + LEN_EU for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[2]  	"BP 2 - Key Material Identifier Length (LEN_KI)" shall specify as an 8-bit number the length in bytes of the Key Material Identifier recorded in this Block Table record.  If this value of LEN_KI is zero, the default Key Material Identifier value, if any is defined, shall be used and no Key Material Identifier shall be recorded in this record.  If the value of LEN_KI is 4 or 8, the Key Material Content shall contain a numerical value specifying the position in the optional Parameter Table which records the appropriate Key Material Identifier.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 3 - Extended Use Length (LEN_EU)" shall specify as an 8-bit number the length in bytes of the Extended Use field recorded in this Block Table record.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 4 to 3 + LEN_KI - Key Material Content (KEY_ID)" shall contain the content of the Key Material Identifier or a numerical value specifying the position in the optional Parameter Table which records the appropriate Key Material Identifier.  If the value of LEN_KI is 8, the appropriate numerical value shall be recorded according to ISO 9660 Section 7.3.3.

[5] 	"BP 4 + LEN_KI to 3 + LEN_KI + LEN_EU - Extended Use" shall contain the content of the Extended Use field.  The recording of information in this field shall conform to the definition of Extended Use Entries in this specification.

6.6	Description of "SM" Extended Use Entry

	The "SM" Extended Use Entry is intended to record a Short Notification Message as defined for the Encrypted CD-ROM Notification Sector (section 5.8).  Recording of this entry is optional.  If recorded, the "SM" Extended Use Entry shall be recorded in the Extended Use Area of the associated VOLUME DESCRIPTOR.  Only one "SM" field may be recorded for a single root directory.

	The format of the "SM" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "SM" type Extended Use Entry.  The bytes in this field shall be (53)(4D) ("SM").

[2]  	"BP 3 - Length (LEN_SM)" shall specify as an 8-bit number the length in bytes of the "SM" Extended Use Entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "SM" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to the ISO 9660 Section 7.1.1.

[4]  	"BP 5 to LEN_SM - Message Content" shall contain the content of the Short Notification Message.  This field shall be recorded using ISO 646 if the Short Notification Message is recorded in a directory structure associated with a ISO 9660 Primary Volume Descriptor, or with the c-characters if  associated with a ISO 9660 Supplementary Volume Descriptor. 

6.7	Description of "LM" Extended Use Entry

	The "LM" Extended Use Entry is intended to record a Long Notification Message as defined for the Encrypted CD-ROM Notification Sector (section 5.10).  Recording of this entry is optional.  If recorded, each "LM" Extended Use Entry shall be recorded in the Extended Use Area of the associated VOLUME DESCRIPTOR.  Since the Long Notification Message can exceed the capacity of a single "LM" Extended Use Entry, multiple "LM" Extended Use Entries may be recorded for a single root directory.  If multiple "LM" entries are recorded in a single directory record, the Message Content or each of the entries shall be concatenated together up to and including the first entry with a CONTINUE Flag set to ZERO.
 	The format of the "LM" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "LM" type Extended Use Entry.  The bytes in this field shall be (4C)(4D) ("LM").

[2] 	"BP 3 - Length (LEN_LM)" shall specify as an 8-bit number the length in bytes of the "LM" Extended Use Entry.  The number in this field shall be 8 + LEN_KI + LEN_AI for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "LM" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 5 - Flags" shall contain bit field flags numbered 0 to 7 starting with the least significant bit as follows:
	Position	Name		Value		Interpretation
	______	__________	______	___________________________
	     0	  	CONTINUE	ONE		Continues in next "LM" field
					ZERO		Does not continue 	all others	RESERVED	ZERO		Value must be 0

[5]  	"BP 6 to 5 + LEN_LM - Message Content" shall contain (a portion of) the content of the Long Notification Message.  This field shall be recorded using ISO 646 if the Long Notification Message is recorded in a directory structure associated with a ISO 9660 Primary Volume Descriptor, or with the c-characters if  associated with a ISO 9660 Supplementary Volume Descriptor.

6.8	Description of "IV" Extended Use Entry

	This entry shall record the value of an Initialization Vector, used by some common encryption algorithms.  This entry is optional.  

	The format of the "IV" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "IV" type Extended Use Entry.  The bytes in this field shall be (49)(56) ("IV").

[2]  	"BP 3 - Length (LEN_IV)" shall specify as an 8-bit number the length in bytes of the "IV" Extended Use Entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "IV" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 5 to LEN_IV - Initialization Vector Content" shall contain initialization vector data.  Recording of this field shall be user-defined.

6.9	Description of "PS" Extended Use Entry

	This field allows recording of a Publisher Signature similar to that recorded in the Encrypted CD-ROM Notification Sector with the exception that, is no such sector is recorded, the Primary Volume Descriptor sector, with the Digital Signature Content extracted and all bytes in this field set to ISO 646 NUL (DEC 00), should be used as the signed data.  This entry is optional.  If recorded, this entry shall be recorded in the Primary Volume Descriptor Application Use Area.

	The format of the "PS" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "PS" type Extended Use Entry.  The bytes in this field shall be (50)(53) ("PS").

[2]  	"BP 3 - Length (LEN_PS)" shall specify as an 8-bit number the length in bytes of the "PS" Extended Use Entry.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "PS" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 5 to LEN_PS - Publisher Signature Content" shall contain as defined for the Publisher Signature Field of the Encrypted CD-ROM Notification Sector of this specification.  Recording of this field shall be consistent with FIPS PUB XX, DRAFT for Digital Signature Standard (DSS).

6.10	Description of "RP" Extended Use Entry

	Recording of this entry indicates that the Root Directory and Path Tables associated with the Primary or Supplementary Volume Descriptor in which this entry is recorded shall be encrypted using the specified encryption parameters.  This field shall only be recorded when using Encryption Level 4.

	The format of the "RP" Extended Use Entry is as follows:[1]  	"BP 1 to BP 2 - Signature Word" shall indicate that the Extended Use Entry is a "RP" type Extended Use Entry.  The bytes in this field shall be (52)(50) ("RP").

[2]  	"BP 3 - Length" shall specify as an 8-bit number the length in bytes of the "RP" Extended Use Entry.  The number in this field shall be 4 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 4 - Extended Use Entry Version" shall specify as an 8-bit number an identification of the version of the "RP" Extended Use Entry.  The number in this field shall be 1 for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

7.0	The Block Table 

	On some receiving systems it is not feasible to modify how the file system works to incorporate transparent access to encrypted file systems.  On such systems it is often possible, though, to create device drivers that can handle the decryption if there is a simple mechanism for identifying the encrypted information on the disc.  The Primary and Supplementary Volume Descriptors provide a field for recording the Logical Block Size used in the corresponding volume.  The Block Table provides an easy way to identify which Logical Blocks are encrypted using which encryption parameters.

	The logical block address of the table defined here, if recorded, shall be specified in the Block Table Location field of each recorded Encrypted CD-ROM Notification Sector and "SH" entry.  Additionally, the table may be recorded in the ROOT DIRECTORY using the reserved filename "BLOCK.TBL".

7.1	Format of the Block Table 

	The Block Table is a list of variable length records preceded by a header record.  The header record consists of the ISO 646 character string:

	"SECURECD BLOCK TABLE V01".  

	Each Block Table record is of the following form:

[1]  	"BP 1 - Length (LEN_REC)" shall specify as an 8-bit number the length in bytes of the Block Table record.  The number in this field shall be 4 + LEN_KI + LEN_AI + LEN_EU for this version.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[2]  	"BP 2 - Key Material Identifier Length (LEN_KI)" shall specify as an 8-bit number the length in bytes of the Key Material Identifier recorded in this Block Table record.  If this value of LEN_KI is zero, the default Key Material Identifier value, if any is defined, shall be used and no Key Material Identifier shall be recorded in this record.  If the value of LEN_KI is 4 or 8, the Key Material Content shall contain a numerical value specifying the position in the optional Parameter Table which records the appropriate Key Material Identifier.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[3]  	"BP 3 - Algorithm Identifier Length (LEN_AI)" shall specify as an 8-bit number the length in bytes of the Algorithm Identifier recorded in this Block Table record.  If this value is zero, the default Algorithm Identifier value, if any is defined, shall be used and no Algorithm Identifier shall be recorded in this record.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[4]  	"BP 4 - Extended Use Length (LEN_EU)" shall specify as an 8-bit number the length in bytes of the Extended Use field recorded in this Block Table record.  This field shall be recorded according to ISO 9660 Section 7.1.1.

[5]  	"BP 5 to 12 - Start Block" shall contain the logical block address of the first block of the segment encrypted using the encryption parameters specified by this record.  This field shall be recorded according to ISO 9660 Section 7.3.3.
[6]  	"BP 13 to 20 - Length of Segment" shall contain the number of blocks in the segment encrypted using the encryption parameters specified by this record .  This field shall be recorded according to ISO 9660 Section 7.3.3.
[7]  	"BP 21 to 20 + LEN_KI - Key Material Content (KEY_ID)" shall contain the content of the Key Material Identifier or a numerical value specifying the position in the optional Parameter Table which records the appropriate Key Material Identifier.  If the value of LEN_KI is 8, the appropriate numerical value shall be recorded according to ISO 9660 Section 7.3.3.

[8] 	"BP 21 + LEN_KI to 20 + LEN_KI + LEN_AI - Algorithm Content (ALG_ID)" shall contain the content of the Algorithm Identifier.  The recording of this descriptor shall conform to ANSI X.509.  

[9] 	"BP 21 + LEN_KI + LEN_AI to 20 + LEN_KI + LEN_AI + LEN_EU - Extended Use" shall contain the content of the Extended Use field.  The recording of information in this field shall conform to the definition of Extended Use Entries in this specification.

8.0	System Operation Illustration

	The following paragraphs are provided to illustrate an application of this specification using Level 1 Encryption as defined above.  They are NOT intended as the required method of implementing this specification.
	
	8.1	The device driver software will attempt to read Logical Sector 16, byte positions 2 to 6, to verify that the field contains the characters "CD001" which has been established as the field identifier for an ISO 9660 CD-ROM.
	
	8.2	If the device driver software was unable to verify the characters "CD001" in byte positions 2 to 6 of Logical Sector 16, a second read shall take place reading Logical Sectors 15, 14, 13, ... 0, BP 1 to 8, to verify the presence of the characters "SECURECD".
	
		If "SECURECD" is not verified, normal device driver error messages will be displayed to the user.
		
		If successful in verification of an encrypted CD-ROM, the device driver software shall display the Short Notification Message.  Then read the fields necessary to setup the decryption process.
		
		These fields include:
		
	_	"Security Label Field", 9 bytes in length, BP 23 to 31
	
	_	"Algorithm Identifier Field", 12 bytes in length, BP 11 to 22
	
	_	"Key Material Identification Data Field", 80 bytes in length, BP 32 to 111
	
	_	"Encryption Level Field", 2 bytes in length, BP 112 to 113
	
		If necessary, the software will display the appropriate section(s) of the Long Notification Message to inform the user of problem(s) and/or instruct the user on actions required.
		
		If successful, the user will have access to the requested CD-ROM. 
		
		NOTE:	If the application designer chooses not to print notification messages, the entire process, when successful, can be transparent to the end-user.
		
	8.3	The device driver may (optionally) execute the DSS over the contents of the Encrypted CD-ROM Notification Sector to authenticate the publisher of this information.  It is assumed that the device driver has the appropriate DSS algorithm and publishers public key information prior to reading the SECURE CD-ROM.

9.0	Multi-Volume Encrypted CD-ROM

	Individual data sets can be encrypted and written to individual, separate partitions, each with their own System Area with an Encrypted CD-ROM Notification Sector, thus creating a multi-volume encrypted CD-ROM.

10.0	Encrypted CD-ROM Notification Sector Layout (Reference Matrix)

	Paragraph				Mnemonic
	Number	Start	End	Size	Identification	Repr	Data Type
	5.1	01	08	08	"SECURECD"	ID	ISO 646 
	5.2	09	10	02	Rev Number	RN	ISO 646 
	5.3	11	22	12	Algorithm ID	AI	ANSI X.509
	5.4	23	31	09	Sec Label	SL	CCITTX.411
	5.5	32	111	80	Key ID	KI	User Def
	5.6	112	113	02	Encrypt Level	EL	ISO 646 
	5.7	114	153	40	Publ Sign	PS	DSS Std
	5.8	154	185	32	Esc Sequences	ES	ISO 2022
	5.9	186	257	72	Short Message	SM	ISO 646 
	5.10	258	1776	1519	Long Message	LM	ISO 646 
	5.11	1777	1784	8	Block Table	BT	ISO 32-bit
	5.12	1785	1792	8	Param Table	PT	ISO 32-bit
	5.13	1793	2048	256	Extended Use	EU	EU Entries

Additional Information

The purpose of this specification is to define how national security agencies and the military services intend to use a portion of the currently undefined System Area (one or more of Logical Sectors 0 to 15) of an ISO 9660 CD-ROM to provide notification messages to the users.  Under the current usage, a CD-ROM, encrypted with an NSA approved encryption device, causes the user to receive an error message.  The error message originates when the device driver software (usually Microsoft CD-ROM Extensions) can not decipher the encrypted "CD001" normally found in Logical Sector 16, byte position 2 to 6.

This error message causes the user to believe that their computer system and/or CD-ROM drive and software are malfunctioning.  What is needed is a message displayed back to the user trying to access an encrypted CD-ROM that, in fact, the user has inserted an encrypted CD-ROM into the CD-ROM drive and that additional steps must be taken by the user to retrieve and display the data.

Additionally, due to the evolving need to have an encrypted CD-ROM capable of containing separate data sets that have been encrypted with separate and different security keys, as well as the ability to have both encrypted and non-encrypted data in separate data sets on the same CD-ROM, there exists the need to define how to accommodate this multi-volume function under existing ISO 9660 guidelines.

This specification will serve as a guide for software developers that need to modify their existing device drivers to access the user notification information for both single volume and multi-volume encrypted CD-ROM's.